In the past, one major problem with using recursive or nonrecursive digital filters has been their step response, or response to large changes in digital input signals, especially those containing noise, at low sampling rates. With these type of input signals, there is a substantial settling time or wait before the output of such a filter matches its input and an accurate, noise-minimized, reading can be obtained.
Further, these filters have been unsatisfactory for removing noise from short duration signals since the signal must last for at least the duration of the settling time before any significant reading can be obtained.
In the past, there have been two types of digital averaging filters. The first is the recursive averaging filter in which an input signal is added with a previously stored signal which has been multiplied by (N-1)/N where N is a predetermined number of signal samples which are to be averaged as determined by the desired noise reduction factor. The sum signal, which is the input signal added to the previously stored signal, is then stored to be the previously stored signal for the next input signal. Simultaneously, the sum signal is modified by 1/N to be outputted as the filtered output signal. Reducing the number of samples N improves the step responsiveness and shortens the needed duration of the input signals, but it makes the output signal more subject to inaccuracy because of noise.
The second is the nonrecursive averaging filter in which the input signals are stepped through a series arrangement of storage units. An input signal is summed with the previously stored signals in each of the storage units and then is averaged to provide the final output signal. For a step change, the nonrecursive filter will require samples equivalent to the number of storage units plus one before the output will settle to its final value.
While the recursive filter is easier to implement in requiring only one storage unit, it is slower to settle than a nonrecursive filter. This is because the recursive filter output depends both on the values of input, present and/or past, and the past value of output while the nonrecursive filter output depends only on the present and past values of input. In both, the settling time may be reduced by reducing the number of samples averaged, but this reduces the noise immunity of both.